Computerized systems have made a significant contribution towards the advancement of modern society and are utilized in a number of applications to achieve advantageous results. The distribution of electronic data over network infrastructures is one such example that has benefited from the utilization of computerized systems. Network operators cultivate the behavior of the networks they manage to reduce costs, successfully enable applications, shut down policy violators, etc. . . . A reliable, well-managed and secure network that allows network participants to run the applications they want and access the data they need—without being subject to unnecessary risks—is a highly prized commodity within the public network community.
Virtual networks, (i.e., an implementation of a network of links which may or may not correspond to physical connections between nodes in the network) in particular have increased in popularity in recent years. Traditional mechanisms of managing physical networks are difficult or impractical to apply to virtual networks. For example, network operators are unable to assert control or set policies within a virtual network as they are able to with physical networks. In addition, participants in a virtual network are afforded little control over whether they are accessing trustworthy resources and/or unable to monitor how other participants may be using their local resources.
Peer-to-peer networks are one such example of virtual networks. A peer-to-peer computer network uses connectivity between participants in the network (termed “peers”) and the cumulative bandwidth of the network participants rather than conventional centralized resources where a relatively low number of servers provide the core value to a service or application. Peer-to-peer networks provide a vital service for efficiently distributing files among its peers without requiring a costly and much less efficient centrally managed service.
Peer-to-peer networks are useful for many purposes, and are commonly used for sharing content files containing audio, video, data or anything in a digital format as its most common use. Popular peer-to-peer service BitTorrent™, for example, is frequently used in the legal community for distributing legal summaries (in document form). Peer-to-peer technology is also used to pass real-time data, such as telephony traffic.
An important aspect of peer-to-peer networks is that all peers within the network provide resources, including bandwidth, storage space, and computing power. Peer-to-peer networks are typically used for connecting nodes via largely ad hoc connections. Thus, as nodes arrive and the demand on the system increases, the total capacity of the system also increases. This is not typically true of client-server architecture with a fixed set of servers, in which adding more clients could adversely affect the rate of data transfer for all users.
A typical client application in a peer-to-peer network connects to the network by connecting to a node (usually a peer) in the network. Each node may have a number of other nodes connected to it, generally depending on the bandwidth available to the node. Each node in the network is thus added to a table of nodes, and is thus accessible to any peer in the network. Typically, a peer client will access an index containing the connection points (e.g., nodes) most likely available and will run through the list until it is able to establish enough peers to reliably access the greatest amount of functionality (e.g. data content) in the network. While the participant is connected, the peer-to-peer client application will continually refresh its index and reconnect to new peers with greater amounts of functionality, or as old peers shut down.
Once the participant is able to establish a connection to a node in the network, the network application typically has more data inside that the peer is able to use to refine its network path. The data typically includes a catalog of other peers who appear to be online at the time. The network application uses the catalog to establish connections to other peers and broaden the coverage of the search while other peers are performing similar operations simultaneously.
Participants in the peer-to-peer network can use a variety of mechanisms to query what data and operations are available to it, and the reliability of the response and quality of the operations will depend mostly on the peers that respond. For example, a participant may request an audio file of a performing artist and the peer-to-peer application will respond by searching for files that the application believes match the query on the machines of other participants that the application.
However, peer-to-peer networks are not without flaws. A common problem that peer-to-peer networks face is that a participant in a peer-to-peer network will not directly know which machines they are connected to through the network and what data they may be offering. Networks comprised of peers that are of ill repute may thus reduce the quality of the data and the quality of the operations. This allows network participants to be connected to machines of network users who knowingly or unwittingly may be distributing troublesome material, thus exposing a participant to malware, viruses, explicit sexual material, pirated content and other forms of undesired and/or unsolicited content.
Further exacerbating the problem is the common practice for purveyors and distributors of such content to engage in obfuscation so as to encourage acquisition by unwitting participants, usually with little to no accountability. For instance, a participant looking for a copy of a popular freely downloadable game based on a filename may inadvertently compromise their machine by installing malware which has been deliberately mislabeled to resemble (or match) the filename of the downloadable game.
Some currently available peer-to-peer applications provide a function that allows a network participant to “block” (i.e., reject connections to and from) other, specifically designated participants. However, a participant would need to be able to identify, with a certain amount of precision (typically an IP address) the other participants to be blocked. As a participant in a peer-to-peer network may not know which machines they are connected to, obtaining the specific identity of another participant may be difficult to ascertain.
Furthermore, application of the method is limited to only the specifically identified participants, and not to other participants of similar disrepute, and the process would need to be repeated for every successive participant to be blocked. Accordingly, in larger networks where greater numbers of unscrupulous users and/or infected machines may reside, the process can be quite inefficient, user-intensive, and still ineffective to address the future risk of exposure.